/**
 * url： https://101.zoo.team/zi-fu-chuan/zi-fu-chuan-part-3-yan-zheng-hui-wen-zi-fu-chuan-shi-xian-strstr-zui-chang-gong-gong-qian-zhui-he-zu#yan-zheng-hui-wen-chuan
 * 
 * 给定一个字符串，验证它是否是回文串，只考虑字母和数字字符，可以忽略字母的大小写
 * 
 * 示例1：
 * 输入："A man, a plan, a canal: Panama"
 * 输出：true
 * 
 * 示例2：
 * 输入："race a car"
 * 输出：false
 * 
 */

/**
 * 剔除不相干字符，遍历剩余字符，首尾一一比较
 */

const isPalindrome1 = (str) => {
    // 剔除非字母字符
    const arr = str.toLowerCase().replace(/[^A-Za-z0-9]/g, "").split('');
    
    const len = arr.length
    // 遍历剩余字符，首尾一一比较
    for (let i = 0 ; i < (len/2) ; i++) {
        if (arr[i] !== arr[len-1-i]) {
            return false
        }
    }
    
    return true
}


/**
 * 剔除不相干字符，将剩余字符翻转，对比翻转之后和翻转之前的 
 */

const isPalindrome2 = (str) => {
    // 剔除非字母字符
    const newStr = str.toLowerCase().replace(/[^A-Za-z0-9]/g , "");
    
    const newStrR = newStr.split('').reverse().join('')
    
    return newStr === newStrR
}

